package com.caregiver.watch.business.care.enums;

import lombok.Getter;

/**
 * 心率检测结果枚举
 */
@Getter
public enum HeartRateResultEnum {
    
    /**
     * 无结果，有干扰或者数据异常
     */
    NO_RESULT(0, "无结果，有干扰或者数据异常"),
    
    /**
     * 窦性心率
     */
    SINUS_RHYTHM(1, "窦性心率"),
    
    /**
     * 窦性心率过缓
     */
    SINUS_BRADYCARDIA(2, "窦性心率过缓"),
    
    /**
     * 窦性心率过速
     */
    SINUS_TACHYCARDIA(3, "窦性心率过速"),
    
    /**
     * 心律不齐（早搏）
     */
    ARRHYTHMIA_PAC(4, "心律不齐（早搏）"),
    
    /**
     * 心律不齐（房颤）
     */
    ARRHYTHMIA_AF(5, "心律不齐（房颤）"),
    
    /**
     * 心率过速（室上性心动过速）
     */
    TACHYCARDIA_SVT(6, "心率过速（室上性心动过速）");
    
    private final int code;
    private final String description;
    
    HeartRateResultEnum(int code, String description) {
        this.code = code;
        this.description = description;
    }
    
    public int getCode() {
        return code;
    }
    
    public String getDescription() {
        return description;
    }
    
    /**
     * 根据代码获取对应的心率结果枚举
     * @param code 结果代码
     * @return 对应的枚举值，如果未找到则返回null
     */
    public static HeartRateResultEnum pares(int code) {
        for (HeartRateResultEnum result : HeartRateResultEnum.values()) {
            if (result.getCode() == code) {
                return result;
            }
        }
        return NO_RESULT;
    }
    
    @Override
    public String toString() {
        return code + ": " + description;
    }
}
